<?php

/**
 * 重写 tpl_ueditor 方法，添加 $input 可以方便对接第三方的 UI 组件，比如 LayUI
 * @param $id 生成富文本编辑器的名称，最终提交POST/GET也是通过此名称来取
 * @param string $value 默认的文本内容
 * @param array $options 参数配置数组，键值说明如下：
 *                  |——————height 正整数，结尾不加px。编辑器的高度
 * @param array $input 给生成的 textarea 添加一些指定的 html 参数，可以方便对接第三方的 UI 组件，比如 LayUI
 * @return string 返回 html 代码
 */
function kit_tpl_ueditor($id, $value = '', $options = array(), $input = array()) {
    // 遍历input数组
    $i = '';
    foreach($input as $key1 => $value1){
        $i = $i.$key1.'="'.$value1.'" ';
    }

    $s = '';
    $options['height'] = empty($options['height']) ? 200 : $options['height'];
    $options['allow_upload_video'] = isset($options['allow_upload_video']) ? $options['allow_upload_video'] : true;
    $s .= !empty($id) ? "<textarea {$i} id=\"{$id}\" name=\"{$id}\" type=\"text/plain\" style=\"height:{$options['height']}px;\">{$value}</textarea>" : '';
    $s .= "
	<script type=\"text/javascript\">
		require(['util'], function(util){
			util.editor('" . ($id ? $id : "") . "', {
			height : {$options['height']}, 
			dest_dir : '" .($options['dest_dir'] ? $options['dest_dir'] : "") . "',
			image_limit : " . (intval($GLOBALS['_W']['setting']['upload']['image']['limit']) * 1024) . ",
			allow_upload_video : " . ($options['allow_upload_video'] ? 'true' : 'false') . ",
			audio_limit : " . (intval($GLOBALS['_W']['setting']['upload']['audio']['limit']) * 1024) . ",
			callback : ''
			});
		});
	</script>";
    return $s;
}

/**
 * 重写 tpl_form_field_image 方法，添加 $input 可以方便对接第三方的 UI 组件，比如 LayUI
 * @param $name 表单input名称
 * @param string $value 表单input值
 * @param string $default 默认显示的缩略图
 * @param array $options 图片上传配置信息
 * @param array $input 给生成的 input 添加一些指定的 html 参数，可以方便对接第三方的 UI 组件，比如 LayUI
 * @return string 返回 html 代码
 */
function kit_tpl_form_field_image($name, $value = '', $default = '', $options = array(), $input = array()) {
	global $_W;
	if (empty($default)) {
		$default = './resource/images/nopic.jpg';
	}
	$val = $default;
	if (!empty($value)) {
		$val = tomedia($value);
	}
	if (!empty($options['global'])) {
		$options['global'] = true;
	} else {
		$options['global'] = false;
	}
	if (empty($options['class_extra'])) {
		$options['class_extra'] = '';
	}
	if (isset($options['dest_dir']) && !empty($options['dest_dir'])) {
		if (!preg_match('/^\w+([\/]\w+)?$/i', $options['dest_dir'])) {
			exit('图片上传目录错误,只能指定最多两级目录,如: "we7_store","we7_store/d1"');
		}
	}
	$options['direct'] = true;
	$options['multiple'] = false;
	if (isset($options['thumb'])) {
		$options['thumb'] = !empty($options['thumb']);
	}
	$options['fileSizeLimit'] = 2 * 1024;
	$s = '';

	if (!defined('TPL_INIT_IMAGE')) {
		$s = '
		<script type="text/javascript">
			function showImageDialog(elm, opts, options) {
				require(["util"], function(util){
					var btn = $(elm);
					var ipt = btn.parent().prev();
					var val = ipt.val();
					var img = ipt.parent().next().children();
					options = '.str_replace('"', '\'', json_encode($options)).';
					util.image(val, function(url){
						if(url.url){
							if(img.length > 0){
								img.get(0).src = url.url;
							}
							ipt.val(url.attachment);
							ipt.attr("filename",url.filename);
							ipt.attr("url",url.url);
						}
						if(url.media_id){
							if(img.length > 0){
								img.get(0).src = "";
							}
							ipt.val(url.media_id);
						}
					}, options);
				});
			}
			function deleteImage(elm){
				$(elm).prev().attr("src", "./resource/images/nopic.jpg");
				$(elm).parent().prev().find("input").val("");
			}
		</script>';
		define('TPL_INIT_IMAGE', true);
	}

    // 遍历input数组
    $i = '';
    foreach($input as $key1 => $value1){
        $i = $i.$key1.'="'.$value1.'" ';
    }

    $s .= '
		<div class="input-group ' . $options['class_extra'] . '">
			<input type="text" '.$i.'name="' . $name . '" value="' . $value . '"' . ($options['extras']['text'] ? $options['extras']['text'] : '') . ' class="form-control" autocomplete="off">
			<span class="input-group-btn">
				<button class="btn btn-default" type="button" onclick="showImageDialog(this);">选择图片</button>
			</span>
		</div>
		<div class="input-group ' . $options['class_extra'] . '" style="margin-top:.5em;">
			<img src="' . $val . '" onerror="this.src=\'' . $default . '\'; this.title=\'图片未找到.\'" class="img-responsive img-thumbnail" ' . ($options['extras']['image'] ? $options['extras']['image'] : '') . ' width="150" />
			<em class="close" style="position:absolute; top: 0px; right: -14px;" title="删除这张图片" onclick="deleteImage(this)">×</em>
		</div>';
	return $s;
}
?>